'use strict';

const Controller = require('egg').Controller;
const { ObjectId } = require("mongodb");

class CollectController extends Controller {
    async index() {
        const { ctx } = this;
        var { id, collected } = ctx.request.body;
        collected = (collected == "true") ? true : false;
        var db = this.app.mongodb;
        // 1.更改collect
        await db.collection("article").updateOne({ _id: ObjectId(id) }, { $set: { collected: collected } });
        // 2.根据id拿到对应数据
        var res = await ctx.service.article.find(id);
        // console.log(res[0]);
        // 3.存数据的时候 （collected==true）（数据库中没有对应id字段）
        try {
            if (collected) {
                await db.collection("user").insertOne(res[0]);
                ctx.body = {
                    status: 200,
                    msg: "收藏成功"
                }
            } else {
                await db.collection("user").deleteOne({ _id: ObjectId(id) })
                ctx.body = {
                    status: 200,
                    msg: "取消收藏"
                }
            }
        } catch (err) {
            this.app.logger.error(err);
            ctx.body = {
                status: 400,
                msg: "数据库中已经存在请不要重复添加"
            }
        }
    }
}

module.exports = CollectController;
